package blockChain

import "WeiXinCode/区块链学习/01_day_hd/block"
//创建区块链对象
type BlockChain struct {
	Blocks []*block.Block
}

//实现创建区块链方法
func NewBlockChain() *BlockChain {
	// 在添加的时候，创建一个区块，我们名为创世块
	genesisBlock := block.NewBlock([]byte("新世界就见到来，我将代表新人类！"), []byte{0x0000000000000000})
	bc := BlockChain{Blocks: []*block.Block{genesisBlock}}
	return &bc
}

//实现区块添加的方法
func (bc *BlockChain)AddBlock(data []byte)  {
	// 1.创建一个区块
	lastBlock:=bc.Blocks[len(bc.Blocks)-1] //获取最后一个链中的block
	prevHash:=lastBlock.Hash //得到前面的哈希值
	block:=block.NewBlock(data,prevHash)
	// 2.添加新区块到区块链中
	bc.Blocks=append(bc.Blocks,block)
}